对软件开发者来说,没有什么比面试更让人害怕的了,尤其是在白板上写代码的面试。但是,如果准备充分、心态平稳,面试实际上也可以成为你向往的机会,以及展现能力和技能的最佳场所。我知道上面的论述可能令你难以置信,尤其是在以往的面试经历令你不堪回首的时候。我在自己的软件开发生涯中也经历过一些可怕的面试,我从这些经历中学到了很多。我可以告诉你:毫无疑问,正确恰当的准备工作会使一切不堪回首的往事发生根本的改变。记得我第一次去微软公司面试的时候,那时的我年轻气盛,认为自己无所不知。微软公司让我去他们位于雷德蒙德[1]的园区,要进行一整天的面试。从一开始事情就变得一团糟。一到旅馆我就打开行李,我突然发现自己忘了带裤子。于是我找到了一家百货商店,在那里我买到了第二天要穿的裤子,但我却不知道,我的麻烦才刚刚开始。我不知道微软公司的面试是什么样子,我也完全没有准备。第二天早上,一位司机来接我,带我去微软园区,在那里我的联络人向我解释了面试流程是怎样的。在一整天里我要被面试六七次。整个面试过程要么持续一整天,要么就只有半天。在前四次面试之后(包括午餐面试),如果我看起来不够优秀,他们会把我提前送回酒店收拾行李离开;否则,还会有三四次面试等着我。第一位面试官让我在白板上编写 Win32 函数。我完全没有准备。我开始支支吾吾,汗如雨下。我在黑板上潦草地写了一些难以辨认的东西。很明显我不知道自己在做什么。面试官试图帮助我,但没有结果。我只得开始找借口。拖延了一段时间,我没有写出任何符合预期的代码。我只好以撒谎来掩盖自己的不足。第二场面试的结果丝毫没有改善。又是要在白板上写代码,只不过更为复杂,然后迎接我的又是尴尬的失败。如果你要摆出一副骄傲的架势,那么至少你得知道自己在做什么。我的自负很快就消散殆尽了。午餐时的面试是一场仁慈的杀戮。我们聊了聊微软和生活。我觉得自己像一匹年迈跛脚的老马,被带到牧场前给了我几块糖……然后“砰!”的一声,一切都结束了。在我还没来得及意识到这一切之前,我就被送上了一辆小巴士,回到了我的旅馆。我当然没有得到录用通知书。然而,我确实从中学到了不少东西。在以后的职业生涯中,在应对面试方面我可以说是轻松自如了。
我希望以一个自己的尴尬故事来作为本章的开篇。这个故事有些残暴,所以现在我应该让你放松一下,接下来我要同你分享的是:作为一名软件开发者,你可能会遇到所有类型的面试。我试着在这里列出我认为最常见的面试类型及其变体。衷心希望你能避免我在比尔·盖茨的酷刑室里所经历过的那种尴尬场面。在本节中,我将讨论各种类型的面试,但我们不会深入讨论细节,因为除非你已经身在面试现场,或者敲定了面试日程安排,否则你可能并不知道将来要面对的是何种类型的面试。别害怕。在我们讨论完面试类型之后,我们会一一讨论如何为不同类型的面试做好准备,我保证。 在被认真考虑是否给予你工作机会之前,雇主对你做一次电话面试是很正常的。大多数大公司在招聘开发者时,都会确保用电话面试的方式过滤出他们想要参加面试的所有潜在人选,然后再安排真正的面试,以此来节省成本。电话面试通常问的都是技术性问题,但也可能包含一些非技术问题。你可能会被电话面试两次,一次是技术面试,另一次是非技术面试。以我那次面试微软的经历为例,我就是被电话面试了两次。就像我说的,电话面试的目的不是决定是否给予你工作机会,而是决定要不要把你淘汰出局。因此,如果你想要通过电话面试,就要展示你技术上的能力,而且还要辨明你不是某种类型的精神病患。通常,电话面试由一些基础的技术问题、资格问题和一些有关性格测试的问题组成。只要你能胜任这份工作,这些面试都不会很难。事实上,电话面试有时就是由某位非技术人员使用一套标准问卷来向你提出问题,并且记录你的答案。因此,电话面试中只要专心回答问题就好,不必在意电话那头有什么反馈。针对问题回答出尽可能多的细节,这样你就很难被电话面试排除在外。 这是一种全新的面试方式,在近几年里才开始出现在现实的招聘流程中。但我相信,今后我们会看到越来越多的面试是以这种方式完成的。这种面试方式很像电话面试,但不是通过电话来完成,而是通过视频聊天工具进行的。面试中,你会被要求解决一些编程问题,甚至与面试官一起进行结对编程,这样他们就可以在远程快速评估出你的技术能力。许多远程工作团队都采用这种面试方式,因为这种面试方式与开发者远程工作的条件非常相似。在这种面试中很难蒙混过关。当你和面试官分享屏幕、实况直播你的编程过程时,面试官对你是否真正知晓如何编写代码可谓是洞若观火。远程技术面试的另一种形式就是,给你一个编程任务或者一个编程能力评估测试的链接,在那里有一个受控的编程环境,要求你在规定的时间内完成一些编程问题。针对这两种类型面试的准备工作与面对面的编码面试的准备工作都非常类似,稍后我们将深入讨论面对面的编码面试。你需要确保你在自己所选择的编程语言上能够漂亮地解决算法类型的问题,并且确保你对数据结构有很好的理解。 在我的职业生涯中,我所经历的大部分面试都是这种一小时左右的面对面的标准技术面试:面试官向我询问一系列关于我将要在工作中大量应用的技术的问题。这些问题都不会很深入。我怀疑这种浮于表面的面试之所以如此大行其道,是因为大多数担当面试官的软件开发者并不真正知晓如何面试某个人。于是他们只能从谷歌上搜索到一系列常见的面试问题,这些问题涉及他们正在使用的主要技术或编程语言,然后简单粗暴地把这些问题拿来直接提问求职者。显然,你也可以做相同的工作来为这种面试做好充分的准备。搜索你求职的技术领域内常见的编程问题,然后背熟答案。 这种面试通常由经理进行,在小公司中通常由 CEO 或者公司创始人进行。这种面试的目的是看你是否能够适应团队的氛围。在这种面试中,你可能会被带出去吃午饭,被询问一些有关你自己和你过去经历的常规问题。面试官通常是在寻找一些迹象,表明你有某种对团队有害的性格缺陷。例如,因为你断言自己做事方式无可挑剔、自己的知识非常渊博,而在你以前的工作中每个人似乎都是愚昧无知,所以你在过去的工作中似乎总是陷入冲突,那么这一切就是一个很明显的标志,表明你会给团队带来麻烦。此外,在午餐面试中,如果你很紧张、心慌意乱,不能和面试官愉快相处,不能与面试官进行一次轻松得体的交流,那么这也可能标志着你的适应能力不是很好。想知道面试官在适应性面试中到底想要寻找什么是非常困难的,所以尽可能地做好你自己,避免任何反社会的行为。实话实说,对大多数人来讲,小组面试可能是最难应对的面试之一,尤其是在小组面试与编码面试组合在一起的时候。在小组面试的时候,你会被几个人组成的小组同时面试。小组成员可以轮流向你发问,或者要求你澄清别人以前提过的问题。你要应对的是技术类型的问题和个人性格类型的问题的混合体,每个人都会对你的每一个答案记下大量笔记。最常见的情况是,小组面试通常安排在半天或者一整天的面试的最后进行,所以一定要准备充分。 这是另一种让人觉得可怕的难缠的面试,也许是最可怕的。在编码面试中,你将被要求通过编写代码来解决一些算法问题。通常,你会被要求在白板上编写代码,而不是使用任何集成开发环境。大多数没有为这类面试做好针对性准备的软件开发者,都会在这一要求下败下阵来。在白板上写代码会让人感到非常局促不安,特别是当你没有足够的自信心解决被提问的问题的时候。因为像微软、谷歌和苹果这样的大公司经常会采用这种面试方式,所以如果想在这些公司中的一家找到工作,你最好做好应对编程面试的准备。最好的方法就是为这类面试展开专门的学习。这些挑战需要一种与你的习惯性思维不同的思维方式和解决问题的方法。要深入了解我是如何处理这些问题的,请从 Simple Programmer 下载我特别准备的“面试预科速成班教材”(Interview Prep Crash Course)。在这个课程中你将看到,我是如何将一个问题分解为白板上的“伪代码” 的,然后在转移到 IDE 环境下来实现最终的解决方案。另外,千万别忘了练习,练习,再练习——重要的事情说三遍。这种面试通常会包含几轮技术面试、一轮企业文化适应性的面试,甚至在最后还有一场小组面试。通常,大公司会选择这种全天或半天面试的形式,但我也曾被资金雄厚的小型初创型公司以这种方式面试过。之所以如此,是因为协调多名面试官每人都要花上一小时来面试每一位求职者,成本是非常高的。这种面试会让人精疲力竭。我已经告诉过你我在微软公司被全天面试的经历,其实我还有过两次在惠普公司的全天面试经历,每一次均以小组面试结束,这两次面试中我的表现都要比在微软公司的面试中的表现要好多了。我真的不喜欢这些面试。因为在全天面试中,哪怕只有一个面试官不喜欢你,你的整个面试过程可能都会被毁掉,即使一张不信任票也往往会让你出局。在这样的面试中,你会在一整天里从一个面试官那里转到另一个面试官,还有一次午餐面试,最后被管理层或者一个小组面试一次。我们会想当然地认为,既然一家公司舍得耗费巨资让你飞越全国,然后还要把你安排在酒店里,再花上一整天时间面试你,那你肯定已经被内定好了,所谓面试只不过是一种形式而已,你一定能够得到这份工作。但我向你保证事实并非如此。相信我,因为我经历过。《软技能2 软件开发者职业生涯指南》作者约翰·森梅兹现身来啦!
好吧,现在我们已经讨论过各种不同类型的面试,现在让我们来谈谈,关于面试我们到底需要知道些什么——无论是技术面试还是非技术性面试。在这里我只能泛泛而谈。因为很明显特定的工作岗位需要特定的技术,所以岗位决定了你需要掌握多少知识,以及你将被问到的问题类型。但我认为,如果你对自己需要了解的内容有一个大致的了解,一定会让你受益匪浅。而且,一旦你知道了这些,就去亲身践行吧。尽管并非所有的面试都需要你解决算法类型的编码问题,但是难度最高的面试(通常也是最重要的面试)会有这个环节。你应该花些时间掌握解决编码面试所需的技能,让自己善于解决编码问题,让自己对数据结构方面的知识牢靠掌握。大多数程序员都无法从容应对编程面试,也不知道如何解决常见的编程问题。为此,我再次推荐 Gayle Laakmann McDowell 的名著《程序员面试金典》。(行文至此,你可能会认为我和 Gayle 是非常熟的好朋友。实际上我从来没有见过她。她也没有回复过我的任何一封电子邮件。只不过她的著作恰好就是为数不多的几本书中的一本,专门教授在编程面试中可能遇到的所有类型的问题。)我还写过一篇有关如何破解编程面试的博客,你可能也会觉得它挺有用的。如果你更喜欢通过视频学习,我在 Pluralsight 上也有专门的课程“面试的准备工作”(Preparing for a Job Interview),那个教程会手把 手地教你如何通过分解的方式解决算法类型的问题。我真心觉得它很有趣。一旦我能攻克编程类型的面试,我就会在其他任何面试中变现得非常自信,因为我知道我连面试官向我提出的最难的挑战都能应对自如。(哦,还可以去看看 FizzBuzz。别对它视而不见——你过会儿会感谢我的这项提醒。)这一条的重要性也是不言而喻的。当我坐在面试会议室的一端,而另一端坐着一位.NET 开发者,他肯定无法回答 CLR 是什么;如果是一位 C++开发者,那他肯定会把多态性当作一种宗教来崇拜。因此,面试官总归有足够的时间搞清楚求职者的技术专长。你需要对自己的技术专长范畴内的问题了如指掌。因此,说真的,任何人都能搜索到的类似“Java 面试问题”之类的内容,如果它属于你的编程语言或者技术专长范畴,你必须要对答如流。你应该知晓谷歌上在你的技术专长范围内排名前三的面试问题中每一个问题的答案。如果你不知道,那完全是你的错,因为这件事本身是很容易的。是的,面试官可能会时不时地给你下绊儿,但你至少应该对最常见的问题一清二楚。如果你正在申请的职位需要使用面向对象编程语言,那你最好要对封装、继承、多态、数据抽象、接口和抽象基类等概念如数家珍。我知道,我自己在每一次技术面试中都会向求职者询问以上每一个概念,而且在我被面试的经历中,有 50%的概率我也被问到了这些问题。你通常可以通过大量的书籍、博客文章和其他资源,找到你在面试中可能被问到的任何编程语言或技术问题列表,所以在这里我就不列出它们了。同时,我在 Pluralsight 上也开设有课程“面试的准备工作”(Preparing for a Job Interview),这个课程中 也讨论了一些常见的技术问题。你还应该准备好回答所有常见的性格和心理测试问题,即大多数求职者默认都会被问到的问题。你应该对回答下列问题有所准备:
- 当你在工作中遇到了挑战或者冲突的时候,你该如何应对?
我不打算在这里详细讨论如何回答这些问题。你可以在网上找到很多关于如何回答这类问题的建议。
简而言之,回答这些问题时你要尽可能真诚,不能透露太多负面的细节,你要尽可能保证一切内容都是正能量。勇于承担责任,积极进取成长,不会因为任何事而责怪别人。确保你至少已经思考并且练习了所有这些问题或者其他类似问题的答案,特别是在“为什么你要离开现在的工作岗位”这样的问题上。向 John 提问:关于“你最大的弱点是什么”这样的问题,我该怎么回答呢?可以遵循这样的逻辑来回答这个问题。几乎任何属性都可以从积极与消极的角度来看待——一项优点同时也是一项弱点。例如,崇尚完美主义,积极的一面是极度关注细节;消极的一面是为了让事情臻于完美,有时会忽略大局。利用这一策略,你可以用类似下面的方式来回答这个问题:“嗯,我倾向于追求完美主义,这很好,因为对细节的极度关注意味着我不会犯太多粗心大意的错误,我会创作出高质量的工作产品。但有时我也会为了让事情臻于完美而过分执着。”明白这个套路了吗?先说优点,再说弱点。强调优点,然后轻轻带出弱点。把优秀的品质稍稍转到消极一面,这样听起来你并不是说你没有弱点,但同时你也没有暴露自己主要的性格缺陷。有些人认为回答这个问题最好的方法就是直截了当地诚实回答,自我揭露自己非常糟糕的一面。不要这么做。当然,我并不是鼓励撒谎——永远不要撒谎——但也没有必要直接告诉面试官,你在高中时跟踪过你的女朋友,或者你有懒惰的倾向。总是要把你最好的一面展现给观众。因此,回答这个问题的时候,展示一下你是如何把弱点转化为优势的能力。
基于上述在面试中可能遇到的问题,《软技能2 软件开发者职业生涯指南》译者王小刚老师我们邀请过来啦!
就在今晚20:00!
CSDN阅读时间·遇见代码直播活动约定你!~赶紧扫码进群,提前锁定直播,为你的职业生涯发展添砖加瓦吧!
好了,现在让我们来探讨一些实际的技巧,帮助你在实际面试中能够竭尽所能尽善尽美。在开始探讨这些技巧之前,我想谈谈最重要的技巧之一,在《软技能:代码之外的生存指南》中有整整一章在讨论这项重要技巧。这项技巧就是,你不能等到面试的时候才给面试官留下深刻的印象。要想让你自己顺利通过面试,你能做的最好的事情就是在进入面试之前就已经让面试官喜欢上你了。技术技能纵然重要,但大多数面试官最后挑选的还都是他们喜欢的人。那么,怎样才能在面试之前就让面试官喜欢上你呢?你想问这中间有什么魔法?很简单。依旧是依靠“跳出框框思考”。在第 12 章中,我谈到了传统的找工作的方法,如通过投放简历找到工作;也描述了一些更为有效的方法。如果你使用了这些“跳出框框思考”方法中的一种,很有可能你是通过一封推荐信来到面试现场的,而不是通过一份冷冰冰的求职申请与简历。在这种情况下,面试官可能已经知道你是谁了,甚至一定对你留有好印象。如果你开了博客或者 YouTube 频道,面试官也可能提前知道了你是谁。最后,我和许多软件开发者谈过,如果已经知道谁会是他们的面试官,那么应该与面试官提前接触一下(不妨称其为“预面试”),提前做一下自我介绍。(这样做的效果出奇地好。)关键是,如果你能在面试前与面试官建立良好的关系,想方设法让面试官在你踏入面试室的大门之前就已经喜欢上你,那么你得到录用通知书的机会就会大增。在我的职业生涯中,我遇到过这样的情况,我能够做到“在面试之前已经让面试官喜欢上我”,以至于面试本身流于形式,我只是和面试官开心地聊了一小时。(无论何时何地,最棒的面试莫过于此。)如果你不能获得这种优势,以下技巧适用于任何面试的情况。 虽然我自己对这件事有所保留,但我确信你还是应该尽量打扮一下再去参加面试。我知道很多软件开发公司都允许员工穿人字拖和大裤衩上班,他们甚至会告诉你面试时也可以如此着装,但千万不要这么做。面试时,你应该穿比雇主公司的着装标准高出两个级别的衣服。如果你是位男士,基本上我会建议你穿一套漂亮的西装去面试;如果你是位女士,我推荐你穿一套正装裙服或者高级西装。如果你现在是一个强力部门的成员,你肯定想穿着你的制服去面试(令人无法抗拒)。不过,我不建议你穿着出席晚宴的燕尾服去面试,那样的杀伤力太大了(除非你是去应聘秘密情报部门的职位)。是的,面试官可能会说“你不需要穿西装”或者“你的着装太过正式了”,但是不要相信他们说的话。即使面试官觉得你穿得太正式了,整洁干练而又职业化的着装也会给人留下难以撼动的第一印象。我看不出如果面试官认为你是非常职业化的人对你会有什么坏处。让其他应聘者穿上 T 恤衫和牛仔裤好了,但你一定要尽量装扮得体,从而有意无意地制造出这样一种认知:你才是更专业、更优秀的候选人。你不必一定接受我的建议,但无论你穿什么,至少要比潜在雇主的办公室着装标准高出一个层级。无论你觉得自己是怎样的坏小子,也不要穿着大裤衩去面试。关于面试着装的具体建议,你可以去 Simple Programmer 看看“软件开发者应该穿什么”(What software developers should wear)里的指导和建议的衣柜清单。 提前 10 分钟准时到场。不是提前15 分钟,也不是提前 20 分钟,更不是迟到 10 分钟,当然也不是踩着点儿到场。如果你开车去面试,那么你要计划提前 30 分钟到那里;如果你按预期提前 30 分钟到了,那就坐在车里等 20 分钟。这就是所谓的“余量”。如果你一向很难做到准时到场,那么一定要提前 30 分钟到达,然后在早到的 20 分钟里做做回复电子邮件、阅读一本书或者其他类似工作。(在大楼外面别让别人看到你。好像我不应该说得这么具体,但我已经说了。)这样,即使有什么预料之外的事情发生(而且事实总是如此)你也依然能准时。面试的时候说谎或者捏造事实是很诱人的,但千万不要这么做。你不需要自告奋勇地把自己的每一条负面信息都招供出来,但是如果真被问到,那一定要直言相告。别想着把它隐藏起来。特别是在回答技术问题的时候。如果你不知道答案,你只能诚实回答你不知道,但是你有兴趣学习它,回到家之后去找出答案。不要对你不知道的问题胡扯,以为这样就可以蒙混过关。这样做的后果是显而易见的,面试官对自己提出的问题肯定是了如指掌的,而你的支支吾吾、东拉西扯只会让你显得不自信、自以为是和愚蠢。我面试过许多软件开发者,所以我知道,胡说八道永远不会给人留下好印象。不能对面试官提出的每一个问题都对答如流是可以接受的。这样反而会给面试官留下更好的印象——你为人诚实谦逊,坦然相告自己在某一领域内缺乏技能,并且你渴望弥补这个缺陷,而不是用欺骗或者糊弄的方法。在面试中,至少有一个问题你是答不上来的,这样对你有好处。面试时你的压力很大,在这种情况下你可能很容易觉察到自己正在被评判——的确,事实确实如此。在这种情况下,你还可能会觉得自己陷入人身攻击之中——然而,事实并非如此。因此,在被问到关于工作经验或者技能的问题时,你会很容易陷入防备心理。当你不知道面试官提问的问题的答案的时候,你很容易陷入一种防御性的反应中,你会感到尴尬,或者会产生“他们就是想让我看起来像个白痴”的想法。一定要不惜一切代价抵制住这种想法。没有什么比一个畏缩逡巡而又心存戒备的人更缺乏自信的了,他不能处理任何对自己有负面影响的事情,进而又被认为对答案一无所知。如果你觉得自己在面试中陷入人身攻击了,那就随它去吧。拥有坚韧的决心表明你对自己能力的自信是如此之高——你可以承认你的弱点,你不害怕被人看上去很愚蠢或不称职。面试就像演员去试镜。你想要得到尽可能多的时间来充分展示自己的魅力。因此,不要用一个词、一句话来回答面试官提出的问题,这样你会搞砸。我是什么意思呢?不要只从表层回答问题,尤其是针对技术性问题。要增加更多的细节。例如,在回答“谈谈你是如何使用这项技术或概念的”这个问题时,要给出你的想法,尤其是有争议的想法。这样,你会被视为深度理解掌握了这一知识,而不只是死记硬背了一堆你并非真正理解的概念和定义。这样,你才会有机会展示自己的个性,展示你平常是如何解释和分享自己想法的。虽然不必过分向面试官讲述你的整个人生故事,但是要详细阐述所有重要的问题。这种方法的一项巨大优点就是:即使你从技术上的理解是错误的,你也会因为对问题合理有效的分析思考过程而获得赞誉,特别是在你能够大声说出自己想法的时候。什么都可以假装,可是自信假装不出来,所以不要尝试假装自信。相反,要以事实上的自信满满来迎接面试。假装的自信令你内心不安,或者盲目自大。真正的自信来自你对你是谁、你在哪里以及自己是否状态良好有着清醒的认知。怎么才能真正有信心呢?当然是准备充分了。你为面试做的准备越充分,参加面试就会越有信心,前期的准备工作之所以要从难从严也是为此。正如古希腊抒情诗人 Archilochus[2]曾经说过的那样:“我们不需要达到自己的期望水平,我们只需要发挥出训练水平即可。” “我是善于自我激励的人。我清楚自己该做什么,而且我一定会去做。”你对面试官说的每一件事都应该展示出这一项重要特质。我自己就是个开公司的人,我可以告诉你,这项特质正是我在挑选雇员的时候苦苦追寻的,我认为它比任何其他东西都要重要。我想要聘请的人是我可以指望做事情的人,只需要我的最低限度的指导就可以做事情的人。我希望他能够洞悉自己该做什么,然后真正着手去做。这样的人才是最高效的人才。这些人并不需要你的管束,因为他们能自我管理。因此,请尽可能想尽一切办法展示你就是具备这项特质的人。一定要具体而又详尽地展现出这一点。除非你是渗透入“母体”里的强硬分子[3],否则只要你想掌握任何技能,你就需要刻苦练习。因此,快去做做面试练习吧。对着镜子,对着你的宠物,做模拟面试练习。让你的朋友和家人面试你。出去接受真正的面试,只是为了练习。把自己的练习过程录制下来,观看回放,这样你就可以看到自己的不足。亲身实践任何你需要的练习。练习,我怎么强调都不为过。
CSDN特邀业界知名的咨询顾问和培训讲师王小刚老师,助力你的职业生涯规划,带你乘风破浪,勇往直前!扫码进去随时可与老师进行直播互动,为你答疑解惑。
[1]雷德蒙德(Redmond)是位于美国华盛顿州的城市,处在大西雅图地区的东部边缘。微软公司总部位于雷德蒙德市。——译者注 [2]Archilochus(公元前 680 年—公元前 645 年),一般音译为阿尔奇洛克斯,古希腊抒情诗人,生活在帕罗斯岛的“古风时期”,是已知最早的古希腊作家。——译者注
[3]此处原文为“Unless you’ve got a hardline into the
Matrix”。这里作者引用著名科幻系列电影《黑客
帝国》(Matrix)中的情节作为强调——在该系列电影中,人类社会是由一个被称作“母体”(Matrix)的计算机人工智能系统控制,所有人都生活在由“母体”营造出的虚拟世界里,所有的技能,如功夫、射击甚至飞檐走壁,都可以通过下载程序快速掌握(然而这些技能只在虚拟世界里有效)。——译者注
软技能2 软件开发者职业生涯指南
作者: 【美】John Z. Sonmez
译者: 王小刚
本书是《软技能:代码之外的生存指南》一书作者的新作,主要围绕软件开发从业者职业生涯的发展历程,描述软件开发者在职场中需要具备的各种“软技能”—如何入行成为软件开发者,如何学会第一门编程语言,如何写求职简历,如何准备面试,如何选择工作岗位,如何选择技术方向,如何拓展技术技能,如何与团队和领导融洽相处,如何以著书立说方式为自己在业界赢得赞誉,等等。本书适合各层次的软件开发者阅读。尽管本书名义上是专门写给软件开发者的,但实际上这也是一本关于管理个人职业生涯以及如何获得成功的书,对软件开发行业的各类从业者做好职业发展规划都很有帮助。
软技能 代码之外的生存指南
作者: 【美】John Z. Sonmez
译者: 王小刚
本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你的个人品牌,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康。本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。